#ifndef __DESTESTVECTORSSET2__
#define __DESTESTVECTORSSET2__

#include "../plainkeycipher.h"

// Test vectors from <https://www.cosic.esat.kuleuven.be/nessie/testvectors/bc/des/Des-64-64.test-vectors>

static const std::vector <PlainKeyCipher> DES_TEST_VECTORS_SET_2 = {
    std::make_tuple("8000000000000000", "0000000000000000", "95F8A5E5DD31D900"),
    std::make_tuple("4000000000000000", "0000000000000000", "DD7F121CA5015619"),
    std::make_tuple("2000000000000000", "0000000000000000", "2E8653104F3834EA"),
    std::make_tuple("1000000000000000", "0000000000000000", "4BD388FF6CD81D4F"),
    std::make_tuple("0800000000000000", "0000000000000000", "20B9E767B2FB1456"),
    std::make_tuple("0400000000000000", "0000000000000000", "55579380D77138EF"),
    std::make_tuple("0200000000000000", "0000000000000000", "6CC5DEFAAF04512F"),
    std::make_tuple("0100000000000000", "0000000000000000", "0D9F279BA5D87260"),
    std::make_tuple("0080000000000000", "0000000000000000", "D9031B0271BD5A0A"),
    std::make_tuple("0040000000000000", "0000000000000000", "424250B37C3DD951"),
    std::make_tuple("0020000000000000", "0000000000000000", "B8061B7ECD9A21E5"),
    std::make_tuple("0010000000000000", "0000000000000000", "F15D0F286B65BD28"),
    std::make_tuple("0008000000000000", "0000000000000000", "ADD0CC8D6E5DEBA1"),
    std::make_tuple("0004000000000000", "0000000000000000", "E6D5F82752AD63D1"),
    std::make_tuple("0002000000000000", "0000000000000000", "ECBFE3BD3F591A5E"),
    std::make_tuple("0001000000000000", "0000000000000000", "F356834379D165CD"),
    std::make_tuple("0000800000000000", "0000000000000000", "2B9F982F20037FA9"),
    std::make_tuple("0000400000000000", "0000000000000000", "889DE068A16F0BE6"),
    std::make_tuple("0000200000000000", "0000000000000000", "E19E275D846A1298"),
    std::make_tuple("0000100000000000", "0000000000000000", "329A8ED523D71AEC"),
    std::make_tuple("0000080000000000", "0000000000000000", "E7FCE22557D23C97"),
    std::make_tuple("0000040000000000", "0000000000000000", "12A9F5817FF2D65D"),
    std::make_tuple("0000020000000000", "0000000000000000", "A484C3AD38DC9C19"),
    std::make_tuple("0000010000000000", "0000000000000000", "FBE00A8A1EF8AD72"),
    std::make_tuple("0000008000000000", "0000000000000000", "750D079407521363"),
    std::make_tuple("0000004000000000", "0000000000000000", "64FEED9C724C2FAF"),
    std::make_tuple("0000002000000000", "0000000000000000", "F02B263B328E2B60"),
    std::make_tuple("0000001000000000", "0000000000000000", "9D64555A9A10B852"),
    std::make_tuple("0000000800000000", "0000000000000000", "D106FF0BED5255D7"),
    std::make_tuple("0000000400000000", "0000000000000000", "E1652C6B138C64A5"),
    std::make_tuple("0000000200000000", "0000000000000000", "E428581186EC8F46"),
    std::make_tuple("0000000100000000", "0000000000000000", "AEB5F5EDE22D1A36"),
    std::make_tuple("0000000080000000", "0000000000000000", "E943D7568AEC0C5C"),
    std::make_tuple("0000000040000000", "0000000000000000", "DF98C8276F54B04B"),
    std::make_tuple("0000000020000000", "0000000000000000", "B160E4680F6C696F"),
    std::make_tuple("0000000010000000", "0000000000000000", "FA0752B07D9C4AB8"),
    std::make_tuple("0000000008000000", "0000000000000000", "CA3A2B036DBC8502"),
    std::make_tuple("0000000004000000", "0000000000000000", "5E0905517BB59BCF"),
    std::make_tuple("0000000002000000", "0000000000000000", "814EEB3B91D90726"),
    std::make_tuple("0000000001000000", "0000000000000000", "4D49DB1532919C9F"),
    std::make_tuple("0000000000800000", "0000000000000000", "25EB5FC3F8CF0621"),
    std::make_tuple("0000000000400000", "0000000000000000", "AB6A20C0620D1C6F"),
    std::make_tuple("0000000000200000", "0000000000000000", "79E90DBC98F92CCA"),
    std::make_tuple("0000000000100000", "0000000000000000", "866ECEDD8072BB0E"),
    std::make_tuple("0000000000080000", "0000000000000000", "8B54536F2F3E64A8"),
    std::make_tuple("0000000000040000", "0000000000000000", "EA51D3975595B86B"),
    std::make_tuple("0000000000020000", "0000000000000000", "CAFFC6AC4542DE31"),
    std::make_tuple("0000000000010000", "0000000000000000", "8DD45A2DDF90796C"),
    std::make_tuple("0000000000008000", "0000000000000000", "1029D55E880EC2D0"),
    std::make_tuple("0000000000004000", "0000000000000000", "5D86CB23639DBEA9"),
    std::make_tuple("0000000000002000", "0000000000000000", "1D1CA853AE7C0C5F"),
    std::make_tuple("0000000000001000", "0000000000000000", "CE332329248F3228"),
    std::make_tuple("0000000000000800", "0000000000000000", "8405D1ABE24FB942"),
    std::make_tuple("0000000000000400", "0000000000000000", "E643D78090CA4207"),
    std::make_tuple("0000000000000200", "0000000000000000", "48221B9937748A23"),
    std::make_tuple("0000000000000100", "0000000000000000", "DD7C0BBD61FAFD54"),
    std::make_tuple("0000000000000080", "0000000000000000", "2FBC291A570DB5C4"),
    std::make_tuple("0000000000000040", "0000000000000000", "E07C30D7E4E26E12"),
    std::make_tuple("0000000000000020", "0000000000000000", "0953E2258E8E90A1"),
    std::make_tuple("0000000000000010", "0000000000000000", "5B711BC4CEEBF2EE"),
    std::make_tuple("0000000000000008", "0000000000000000", "CC083F1E6D9E85F6"),
    std::make_tuple("0000000000000004", "0000000000000000", "D2FD8867D50D2DFE"),
    std::make_tuple("0000000000000002", "0000000000000000", "06E7EA22CE92708F"),
    std::make_tuple("0000000000000001", "0000000000000000", "166B40B44ABA4BD6"),
};

#endif // __DESTESTVECTORSSET2__